Epic Workflow System API - Implementation Template
Setup guide
Please review the prerequisite instructions to create an app in Epic.
Importing templates into Anypoint Studio
- In Studio, click the Exchange X icon in the upper left of the taskbar.
 - Log in with your Anypoint Platform credentials.
 - Search for the template.
 - Click Open.
 
Running templates in Anypoint Studio
After you import your template into Studio, follow these configuration steps to run it:
EPIC Configuration
After obtaining the necessary client and certificate privatekey password information, configure it in the properties file located in the config/properties folder.
mule.env- sets the environment where the application is to be deployed. For a studio deployment, the recommended mule.env value islocalmule.key- sets the encryption password to be used for encrypting secure properties. Update as neededapi.baseurl- sets the base url of the api. Replace/override as needed when deploying to any environment. Default value ishttps://localhost:8082/api, whenmule.envislocalepic.tokenurl- sets the Epic token url. It should be configured inconfig-<mule.env>.yamlfileepic.baseurlSTU3- sets the Epic STU3 request url. It should be configured inconfig-<mule.env>.yamlfileepic.baseurlR4- sets the Epic R4 request url. It should be configured inconfig-<mule.env>.yamlfileepic.appointment.findUrl- sets the Epic Appointment url for finding appointments. It should be configured inconfig-<mule.env>.yamlepic.appointment.bookUrl- sets the Epic Appointment url for booking appointments. It should be configured inconfig-<mule.env>.yamljwt.privateKeyPassword- sets the password to be used for generating signed jwt token. It should be encrypted and configured inconfig-secured-<mule.env>.yamlfileepic.clientId- sets the client id for Epic OAuth request. It should be encrypted and configured inconfig-secured-<mule.env>.yamlfileurlReplacements.patientUrl- sets the replacement for Patient resource. It should be configured inconfig-<mule.env>.yaml. Default value ishttps://localhost:8082/api, whenmule.envislocalurlReplacements.practitionerUrl- sets the replacement for Practitioner resource. It should be configured inconfig-<mule.env>.yaml. Default value ishttps://localhost:8082/api, whenmule.envislocalurlReplacements.locationUrl- sets the replacement for Location resource. It should be configured inconfig-<mule.env>.yaml. Default value ishttps://localhost:8082/api, whenmule.envislocalurlReplacements.serviceRequestUrl- sets the replacement for ServiceRequest resource. It should be configured inconfig-<mule.env>.yaml. Default value ishttps://localhost:8082/api, whenmule.envislocalurlReplacements.scheduleUrl- sets the replacement for Schedule resource. It should be configured inconfig-<mule.env>.yaml. Default value ishttps://localhost:8082/api, whenmule.envislocalurlReplacements.appointmentUrl- sets the replacement for Appointment resource. It should be configured inconfig-<mule.env>.yaml. Default value ishttps://localhost:8082/api, whenmule.envislocalurlReplacements.slotUrl- sets the replacement for Slot resource. It should be configured inconfig-<mule.env>.yaml. Default value ishttps://localhost:8082/api, whenmule.envislocal
Please refer to the attached link on how to secure the configuration properties.
Add Keystore file (Anypoint_Keystore.p12) generated as part of Epic Configuration to src/main/resources folder.
HTTPS Configuration
https.host— sets the service host interface. It should be configured inconfig-<mule.env>.yamlfile. (Defaults to 0.0.0.0 for all interfaces).https.port— sets the HTTPS service port number. It should be configured inconfig-<mule.env>.yamlfile. (Default 8082).- TLS Configuration - Keystore properties setup:
keystore.alias- sets the alias to the keystore. It should be configured inconfig-<mule.env>.yamlfile.keystore.path- sets the path to the key file. Key should be available in /src/main/resources/keystore. It should be configured inconfig-<mule.env>.yamlfile.keystore.keypass— sets keystore keypass to support HTTPS operation. It should be encrypted and configured inconfig-secured-<mule.env>.yamlfile.keystore.password— sets keystore password to support HTTPS operation. It should be encrypted and configured inconfig-secured-<mule.env>.yamlfile.
 
Please refer to the attached link on how to generate the Keystore.
Run it
- Right-click the template project folder.
 - Hover your mouse over 'Run as'.
 - Click Mule Application (configure).
 - Inside the dialog, select Environment and set the variable mule.env to the appropriate value (e.g., dev or local).
 - Inside the dialog, select Environment and set the variable mule.key to the property encryption key that you used to encrypt your secure properties.
 - Click Run.
 
Deployment instructions for CloudHub using provided scripts
Ensure the Maven profile CloudHub-DEV has been properly configured in your settings.xml file. Reference can be found by downloading the Accelerator Setup Guide asset. Additional instructions are available in Accelerator Setup Guide - Configuring the Accelerator Build section.
Update the config-dev.yaml properties appropriately and then use one of the following scripts to deploy the application to CloudHub:
- packageDeploy.sh or deployOnly.sh (Mac/Linux)
 - packageDeploy.cmd or deployOnly.cmd (Windows)
 
Testing
- Use Advanced Rest Client or Postman to send request over HTTPS. The template includes a postman collection in 
src/test/resourcesfolder. Update the collection variable(s) after successful import.